package com.twxm.breed.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

//首先是扫码登录，会回调到那个没有页面的链接，这个时候我确实可以拿到当前用户的信息。但是我没有办法传数据给你和给另一个Controller。
//然后你的前端PC端就没办法拿到数据来进行逻辑处理然后跳转
//我也没办法把数据传给doLogin那个Controller
/*
* 所以想到了一个策略，就是我提前把这个二维码绑定好，就是用一个唯一的id生成一个唯一的二维码。
* 这样回调链接中可以获取链接中的参数id，既然进入了回调链接，那么说明这个用户扫码了。
* 既然扫码了，在redis中，我就可以设置当前二维码（id）的value为已经扫码了。
* 因为是redis，数据就可以共享在user/login中使用了，那你只需要给我id到user/login中，
* 我就可以在redis查询这个二维码被扫描的情况，查询结果就可以返回给你了
*/
@Component
public class ScanQrcodeRedis {
    //value用于标记是否被扫码了
    private RedisTemplate<String, Object> redisTemplate;

    @Autowired
    public ScanQrcodeRedis(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }


    public void set(String key,Object value){
        redisTemplate.opsForValue().set(key,value);
    }

    public Object get(String key) {
        return redisTemplate.opsForValue().get(key);
    }
}
